package com.xuwei.ext.http;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;

import com.sun.net.httpserver.*;
/**
 * JDK6的新特性之五:轻量级Http Server
 JDK6提供了一个简单的Http Server API,据此我们可以构建自己的嵌入式Http Server,
 它支持Http和Https协议,提供了HTTP1.1的部分实现，没有被实现的那部分可以通过扩展已有的
 Http Server API来实现,程序员必须自己实现HttpHandler接口,
 * @author David
 * @since 2015年8月25日 下午9:57:30
 * @version 
 * @since JDK 1.6
 */
public class HTTPServerAPIDemo1 {
     public static void main(String[] args) {
         try {
             HttpServer hs = HttpServer.create(new InetSocketAddress(8888),0);//设置HttpServer的端口为8888
             hs.createContext("/hi", new MyHandler());//用MyHandler类内处理到/hi的请求
             hs.setExecutor(null); // creates a default executor
             hs.start();
         } catch (IOException e) {
             e.printStackTrace();
         }
     }
}

class MyHandler implements HttpHandler {
    public void handle(HttpExchange t) throws IOException {
        InputStream is = t.getRequestBody();
        String response = "<h3>Happy Every Day!</h3>";
        t.sendResponseHeaders(200, response.length());
        OutputStream os = t.getResponseBody();
        os.write(response.getBytes());
        os.close();
    }
}